# ————————————————————  9.8.1单继承  ————————————————————
# class Cat(object):
#     def __init__(self, color):
#         self.color = color
#     def cry(self):
#         print("喵喵叫～")
# class ScottishFold(Cat): 		# 定义继承Cat的子类ScottishFold
#     pass
# fold = ScottishFold("灰色")  	# 创建子类的对象
# print(f"{fold.color}的折耳猫")  	# 子类访问从父类继承的属性
# fold.cry()  			              # 子类调用从父类继承的方法

# class Cat(object):
#     def __init__(self, color):
#         self.color = color
#         self.__age = 1                        # 增加私有属性
#     def cry(self):
#         print("喵喵叫～")
#     def __test(self):                        # 增加私有方法
#         print("我是私有方法")
# # print(fold.__age)     			# 子类访问父类的私有属性
# fold.__test()          			# 子类调用父类的私有方法


# ————————————————————  9.8.2多继承  ————————————————————
# class House(object):
#     def live(self):
#         print("供人居住")
# class Car(object):
#     def drive(self):
#         print("行驶")
# # 定义一个表示房车的类TouringCar，继承House和Car类
# class TouringCar(House, Car):
#     pass
# tour_car = TouringCar()
# tour_car.live()              # 子类对象调用父类House的方法
# tour_car.drive()             # 子类对象调用父类Car的方法

# class House(object):
#     def live(self):
#         print("供人居住")
#     def test(self):
#         print("House类测试")
# class Car(object):
#     def drive(self):
#         print("行驶")
#     def test(self):
#         print("Car类测试")
# # 定义一个表示房车的类TouringCar，继承House和Car类
# class TouringCar(House, Car):
#     pass
# tour_car = TouringCar()
# tour_car.live()              # 子类对象调用父类House的方法
# tour_car.drive()             # 子类对象调用父类Car的方法
# tour_car.test()               # 子类对象调用两个父类的同名方法


# ————————————————————  9.8.3重写父类方法  ————————————————————
# class Person:
#     def say_hello(self):
#         print("打招呼！")
# class Chinese(Person):
#     def say_hello(self):             # 重写从父类继承的方法
#         print("吃了吗？")
# chinese = Chinese()
# chinese.say_hello()                  # 子类调用重写的方法


# ————————————————————  9.8.4super()函数  ————————————————————
class Person:
    def say_hello(self):
        print("打招呼！")
class Chinese(Person):
    def say_hello(self):             # 重写从父类继承的方法
        print("吃了吗？")
        print("-" * 10)
        super().say_hello()          # 通过super()函数调用父类被重写的方法
chinese = Chinese()
chinese.say_hello()                  # 子类调用重写的方法
